home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 83 / 64er_Magazin_Sonderheft_83_19xx_Markt__Technik_de_Side_B.d64 / no scratch (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  2KB  |  87 lines

  1. 100 rem beispiel fuer eine kleine
  2. 101 rem directory-manipulation:
  3. 102 rem scratch-schutz einzelner files
  4. 103 rem nach anzeige des filenamens:
  5. 104 rem j = schuetze dies file
  6. 105 rem n = weiter zum naechsten file
  7. 106 rem e = ende
  8. 107 rem achtung !!! "schuetzt" auch
  9. 108 rem schon gescratchte files wenn
  10. 109 rem verlangt, stellt sie aber nicht
  11. 110 rem wieder her !!!
  12. 111 rem scratch-schutz wird im direct.
  13. 112 rem durch ein '<' hinter dem
  14. 113 rem filetyp angezeigt. naeheres
  15. 114 rem siehe tabelle folge 1 !!!
  16. 115 rem achtung !!! nur zusammen mit
  17. 116 rem den unterprogrammen 1 & 2
  18. 117 rem lauffaehig !!!
  19. 118 :
  20. 119 :
  21. 120 mm=0
  22. 130 mm=mm+1:dd$="":gosub1000
  23. 140 if dd$=nn$thenend
  24. 150 printmid$(dd$,4,16):inputaa$
  25. 160 if aa$="e"then end
  26. 170 if aa$="n"then 130
  27. 180 hh$=left$(dd$,1)
  28. 190 hh$=chr$(asc(hh$)or2^6)
  29. 200 dd$=hh$+right$(dd$,29)
  30. 210 gosub2000
  31. 220 goto 130
  32. 230 end
  33. 1000 rem unterprogramm 1
  34. 1001 rem lesen eines eintrages aus dem
  35. 1002 rem directory (alle 30 bytes !!!)
  36. 1003 rem in die variable dd$
  37. 1004 rem uebergabeparameter:
  38. 1005 rem mm=nummer des eintrages der
  39. 1006 rem    gelesen werden soll
  40. 1007 :
  41. 1008 :
  42. 1009 :
  43. 1010 open 15,8,15,"i":open8,8,8,"#"
  44. 1020 nn$="":fori=1to30:nn$=nn$+chr$(0):nexti
  45. 1030 xx=int((mm-1)/8)
  46. 1040 print#15,"u1 8 0 18 0"
  47. 1050 forzz=1toxx+1
  48. 1060 print#15,"b-p 8 0"
  49. 1070 get#8,tt$:tt=asc(tt$+chr$(0))
  50. 1080 get#8,ss$:ss=asc(ss$+chr$(0))
  51. 1090 if tt=0 then dd$=nn$:goto1170
  52. 1100 print#15,"u1 8 0";tt;ss
  53. 1110 nextzz
  54. 1120 pp=mm-(xx*8):pp=(pp-1)*32+2
  55. 1130 print#15,"b-p 8";pp
  56. 1140 forzz=1 to 30:get#8,zz$
  57. 1150 ifzz$=""thenzz$=chr$(0)
  58. 1160 dd$=dd$+zz$:nextzz
  59. 1170 close 8:close 15
  60. 1180 return
  61. 2000 rem unterprogramm 2
  62. 2001 rem schreiben eines eintrages in
  63. 2002 rem das directory (30 bytes !!!)
  64. 2003 rem uebergabeparameter:
  65. 2004 rem mm=nummer des eintrages der
  66. 2005 rem    geschrieben werden soll
  67. 2006 rem dd$=directoryeintrag
  68. 2007 :
  69. 2008 :
  70. 2009 :
  71. 2010 open 15,8,15,"i":open8,8,8,"#"
  72. 2020 xx=int((mm-1)/8)
  73. 2030 print#15,"u1 8 0 18 0"
  74. 2040 forzz=1toxx+1
  75. 2050 print#15,"b-p 8 0"
  76. 2060 get#8,t$:tt=asc(t$+chr$(0))
  77. 2070 get#8,s$:ss=asc(s$+chr$(0))
  78. 2080 if tt=0 then 2150
  79. 2090 print#15,"u1 8 0";tt;ss
  80. 2100 nextzz
  81. 2110 pp=mm-(xx*8):pp=(pp-1)*32+2
  82. 2120 print#15,"b-p 8";pp
  83. 2130 print#8,dd$;
  84. 2140 print#15,"u2 8 0";tt;ss
  85. 2150 close 8:close 15
  86. 2160 return
  87.